package woa.recursion;

/**
 * Pow(x, n)
 * 实现 pow(x, n) ，即计算 x 的 n 次幂函数（即，xn）。
 *
 * 输入：x = 2.00000, n = 10
 * 输出：1024.00000
 *
 * @author wangpeng
 * @date 2021/12/15
 */
public class MyPow {

    public static double myPow(double x, int n) {

        return n > 0 ? helper(x, n) : 1 / helper(x, -n);
    }

    public static double helper(double x, int n) {
        if (n == 0) {
            return 1;
        }
        double y = helper(x, n / 2);
        return n % 2 == 0 ? y * y : y * y * x;
    }

    public static void main(String[] args) {
        System.out.println(myPow(0.00001, -2147483648));
//        System.out.println(myPow(2, 3));
    }
}
